a = 10
def test():
 b = a + 1  # 这里可以对全局变量就行访问，但是不能修改后赋值给他
 # global a  # 声明 a 是全局变量   修改只能这样
 # a = a + 1
 print(a)
test()

#
# 读取全局变量：在一个函数（局部作用域）内部，你可以直接读取全局变量的值而不需要做任何特别声明。这适用于不可变类型（如数字、字符串、元组等）和可变类型（如列表、字典等）。
# 修改全局不可变变量：如果你想要在一个函数内部修改一个全局的不可变变量（例如给它赋一个新的值），你需要使用 global 关键字来声明这个变量是全局的。否则，Python 会认为你创建的是一个同名的局部变量，并且如果在定义之前尝试访问它会导致 UnboundLocalError 错误。
# 修改全局可变对象的内容：对于可变类型的全局对象（比如列表或字典），即使不使用 global 关键字，也可以在函数内部修改这些对象的内容（例如添加列表元素或更改字典中的值）。这是因为你并没有重新绑定变量名到新的对象上，而是修改了原对象的数据。
# 赋值操作意味着新局部变量：在函数内部对一个变量进行赋值操作时，如果没有使用 global 声明，Python 默认会将该变量视为局部变量，即便与全局变量同名也是如此。
# 因此，你的总结可以调整为：“在局部作用域中，可以直接读取全局变量的值，但如果想要修改全局不可变变量的值，则必须使用 global 关键字声明它是全局的。对于全局可变对象，可以在不使用 global 的情况下修改其内容，但不能重新绑定该变量名到一个新的对象上。”
#
# 希望这能更清晰地解释 Python 中局部作用域和全局作用域之间的关系。